package br.com.projetus.exemplos;


/**
 * Modelos de persistencia via jpa
 *
 * @author Fabricio S Costa fabriciojf@gmail.com
 * @since 01/12/2009
 * @version 1.0
 */
public class ModeloJPA {

    /*
     * exemplo do padrão de projeto singleton
     * desde modo você sempre pega apenas uma instancia de RoleDAO
     * e não precisa criar um objeto para utilizar a classe
     *
     * ex:
     * não será mais necessário utilizar a RoleDAO deta forma:
     * RoleDAO roledao = new RoleDAO();
     *
     * agora ela poderá ser acessada assim:
     * RoleDAO.getInstance().getRole();
     *
     */
    private static ModeloJPA instance = new ModeloJPA();

    public static ModeloJPA getInstance() {
        return instance;
    }
//
//    /*
//     * exemplo de listagem com Jpa
//     *
//     */
//    public List<Js_Role> lista() {        
//        return JpaUtil.getEntityManager()
//                .createQuery("from js_role").getResultList();
//    }
//
//    /*
//     * exemplo de consulta like com Jpa
//     * 
//     */
//    public List<Js_Role> procura(String role) {
//        String oql = "from Js_Role where upper(rolename) like :role";
//        Query select = JpaUtil.getEntityManager().createQuery(oql);
//        select.setParameter("role", "%" + role.toUpperCase() + "%");
//        return select.getResultList();
//    }
//
//    /*
//     * exemplo de find com Jpa
//     *
//     */
//    public Js_Role localiza(int id) {
//        return (Js_Role) JpaUtil.getEntityManager().find(Js_Role.class, id);
//    }
//
//    /*
//     * exemplo de save com Jpa
//     *
//     */
//    public Js_Role salva(Js_Role role) {
//        Js_Role u = null;
//        EntityManager em = JpaUtil.getEntityManager();
//        em.getTransaction().begin();
//        try {
//            u = em.merge(role);
//            em.getTransaction().commit();
//        } catch (Exception ex) {
//            em.getTransaction().rollback();
//        }
//        return u;
//    }
//
//    /*
//     * exemplo de delete com Jpa
//     *
//     */
//    public void remove(Js_Role role) {
//        EntityManager em = JpaUtil.getEntityManager();
//        em.getTransaction().begin();
//        try {
//            em.remove(role);
//            em.getTransaction().commit();
//        } catch (Exception ex) {
//            em.getTransaction().rollback();
//        }
//    }
}
